Matlab
code 2.5: Matlab file “Figure 2-10.m”
%--------------------------------------------------------------------
% This code can be used to generate Figure 2.10
%--------------------------------------------------------------------
clear all;
close all;
%% the theoretical curve of vibrating target
micro-Doppler characteristic when radar platform is vibrating
c = 3e8;
j = sqrt(-1);
fc = 10e9; % carrier frequency of transmitted
signal
v = 0; % translational velocity of target
cord = 1000*[300 100 500]; % coordinates of
local coordinate system's origin in the radar coordinate system
colo = [0 0 0]; % coordinates of radar in the
radar coordinate system
R0 = cord-colo;
alpha = 0.9273; % azimuth angle
% alpha = atan(cora(2)/cora(1));
beita = 0.7854; % elevation angle
% beita =
atan(cora(3)/(sqrt(cora(1)^2+cora(2)^2)));
alpha_p = pi/5; % azimuth angle of target
vibrating axis
beita_p = pi/4; % elevation angle of target
vibrating axis
dv = 0.01; % vibration amplitude
fv = 3; % vibration frequency
alpha0 = pi/10; % azimuth angle of radar
platform vibrating axis
beita0 = pi/3; % elevation angle of radar
platform vibrating axis
dr = 0.01; % vibration amplitude of radar
platform
fr = 5; % vibration frequency of radar platform
t = 1; % radar illumimated time
prf = 1000; % pulse repetition frequency
pri = 1/prf; % pulse repetition interval
dt = 0:pri:t-pri; % time sampling interval
fmd1 =
(4*pi*fc*fv*dv/c)*(cos(alpha-alpha_p)*cos(beita)*cos(beita_p)+sin(beita)*sin(beita_p))*cos(2*pi*fv*dt)...
-(4*pi*fc*fr*dr/c)*(cos(alpha-alpha0)*cos(beita)*cos(beita0)+sin(beita)*sin(beita0))*cos(2*pi*fr*dt);
fmd2 = (4*pi*fc*fv*dv/c)*(cos(alpha-alpha_p)*cos(beita)*cos(beita_p)+sin(beita)*sin(beita_p))*cos(2*pi*fv*dt);
figure(1)
plot(dt,fmd1,'.r') % when radar platform is
vibrating
hold on
plot(dt,fmd2) % when radar platform is
stationary
legend('platform vibrating','platform
stationary')
xlabel('Time (s)')
ylabel('Frequency (Hz)')
axis([0,1,-50,50])
%% the time-frequency analysis result of
vibrating target micro-Doppler characteristic when radar platform is vibrating
r = zeros(length(colo),length(dt)); % distance
between the scatterers and radar
m = length(dt);
for i = 1:m
r(:,i) =
R0'+dv*sin(2*pi*fv*dt(i))*[cos(alpha_p)*cos(beita_p);sin(alpha_p)*cos(beita_p);sin(beita_p)]...
-dr*sin(2*pi*fr*dt(i))*[cos(alpha0)*cos(beita0);sin(alpha0)*cos(beita0);sin(beita0)];
end
rabs = sqrt(sum(r.^2,1));
s = exp(j*2*pi*fc*2*rabs'/c); % echo signal
matrix
N = 200; % number of Gabor coefficients in time
Q = 100; % degree of oversampling
tfr = tfrgabor(s.',N,Q); % Gabor transform
tfr_r = fftshift(tfr,1);
figure(2)
contour(linspace(min(dt),max(dt),length(tfr_r(1,:))),linspace(-prf/2,prf/2-1,length(tfr_r(:,1))),tfr_r,10)
xlabel('Time (s)')
ylabel('Frequency (Hz)')
axis([0,1,-50,50])